
#pragma warning( disable: 4049 )  /* more than 64k source lines */

/* this ALWAYS GENERATED file contains the definitions for the interfaces */


 /* File created by MIDL compiler version 6.00.0347 */
/* at Wed Mar 26 14:49:50 2008
 */
/* Compiler settings for src\msw\DOM3ImplReg.idl:
    Oicf, W1, Zp8, env=Win32 (32b run)
    protocol : dce , ms_ext, c_ext
    error checks: allocation ref bounds_check enum stub_data 
    VC __declspec() decoration level: 
         __declspec(uuid()), __declspec(selectany), __declspec(novtable)
         DECLSPEC_UUID(), MIDL_INTERFACE()
*/
//@@MIDL_FILE_HEADING(  )


/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 440
#endif

#include "rpc.h"
#include "rpcndr.h"

#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif // __RPCNDR_H_VERSION__

#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/

#ifndef __DOM3ImplReg_h__
#define __DOM3ImplReg_h__

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

/* Forward Declarations */ 

#ifndef __IDOMImplementation_FWD_DEFINED__
#define __IDOMImplementation_FWD_DEFINED__
typedef interface IDOMImplementation IDOMImplementation;
#endif 	/* __IDOMImplementation_FWD_DEFINED__ */


#ifndef __IDOMImplementationList_FWD_DEFINED__
#define __IDOMImplementationList_FWD_DEFINED__
typedef interface IDOMImplementationList IDOMImplementationList;
#endif 	/* __IDOMImplementationList_FWD_DEFINED__ */


#ifndef __IDOMImplementationSource_FWD_DEFINED__
#define __IDOMImplementationSource_FWD_DEFINED__
typedef interface IDOMImplementationSource IDOMImplementationSource;
#endif 	/* __IDOMImplementationSource_FWD_DEFINED__ */


#ifndef __IDOMImplementationRegistry_FWD_DEFINED__
#define __IDOMImplementationRegistry_FWD_DEFINED__
typedef interface IDOMImplementationRegistry IDOMImplementationRegistry;
#endif 	/* __IDOMImplementationRegistry_FWD_DEFINED__ */


#ifndef __IDOMImplementationErrorList_FWD_DEFINED__
#define __IDOMImplementationErrorList_FWD_DEFINED__
typedef interface IDOMImplementationErrorList IDOMImplementationErrorList;
#endif 	/* __IDOMImplementationErrorList_FWD_DEFINED__ */


#ifndef __DOMImplementationRegistry_FWD_DEFINED__
#define __DOMImplementationRegistry_FWD_DEFINED__

#ifdef __cplusplus
typedef class DOMImplementationRegistry DOMImplementationRegistry;
#else
typedef struct DOMImplementationRegistry DOMImplementationRegistry;
#endif /* __cplusplus */

#endif 	/* __DOMImplementationRegistry_FWD_DEFINED__ */


#ifndef __DOMImplementation_FWD_DEFINED__
#define __DOMImplementation_FWD_DEFINED__

#ifdef __cplusplus
typedef class DOMImplementation DOMImplementation;
#else
typedef struct DOMImplementation DOMImplementation;
#endif /* __cplusplus */

#endif 	/* __DOMImplementation_FWD_DEFINED__ */


#ifndef __DOMImplementationSource_FWD_DEFINED__
#define __DOMImplementationSource_FWD_DEFINED__

#ifdef __cplusplus
typedef class DOMImplementationSource DOMImplementationSource;
#else
typedef struct DOMImplementationSource DOMImplementationSource;
#endif /* __cplusplus */

#endif 	/* __DOMImplementationSource_FWD_DEFINED__ */


#ifndef __DOMImplementationList_FWD_DEFINED__
#define __DOMImplementationList_FWD_DEFINED__

#ifdef __cplusplus
typedef class DOMImplementationList DOMImplementationList;
#else
typedef struct DOMImplementationList DOMImplementationList;
#endif /* __cplusplus */

#endif 	/* __DOMImplementationList_FWD_DEFINED__ */


/* header files for imported files */
#include "oaidl.h"
#include "ocidl.h"

#ifdef __cplusplus
extern "C"{
#endif 

void * __RPC_USER MIDL_user_allocate(size_t);
void __RPC_USER MIDL_user_free( void * ); 

#ifndef __IDOMImplementation_INTERFACE_DEFINED__
#define __IDOMImplementation_INTERFACE_DEFINED__

/* interface IDOMImplementation */
/* [unique][helpstring][nonextensible][dual][uuid][object] */ 


EXTERN_C const IID IID_IDOMImplementation;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3B1CB6BE-BDEE-4E8D-8921-9C2DB966460B")
    IDOMImplementation : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE addFeature( 
            /* [in] */ BSTR sFeature,
            /* [in] */ BSTR sVersion) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE hasFeature( 
            /* [in] */ BSTR sFeature,
            /* [in] */ BSTR sVersion,
            /* [retval][out] */ VARIANT_BOOL *pbHasFeature) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getFeature( 
            /* [in] */ BSTR sFeature,
            /* [in] */ BSTR sVersion,
            /* [retval][out] */ IUnknown **ppFeature) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE registerFeature( 
            /* [in] */ BSTR sFeature,
            /* [in] */ BSTR sVersion,
            /* [in] */ BSTR sIdentifier) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IDOMImplementationVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IDOMImplementation * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IDOMImplementation * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IDOMImplementation * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IDOMImplementation * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IDOMImplementation * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IDOMImplementation * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IDOMImplementation * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *addFeature )( 
            IDOMImplementation * This,
            /* [in] */ BSTR sFeature,
            /* [in] */ BSTR sVersion);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *hasFeature )( 
            IDOMImplementation * This,
            /* [in] */ BSTR sFeature,
            /* [in] */ BSTR sVersion,
            /* [retval][out] */ VARIANT_BOOL *pbHasFeature);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getFeature )( 
            IDOMImplementation * This,
            /* [in] */ BSTR sFeature,
            /* [in] */ BSTR sVersion,
            /* [retval][out] */ IUnknown **ppFeature);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *registerFeature )( 
            IDOMImplementation * This,
            /* [in] */ BSTR sFeature,
            /* [in] */ BSTR sVersion,
            /* [in] */ BSTR sIdentifier);
        
        END_INTERFACE
    } IDOMImplementationVtbl;

    interface IDOMImplementation
    {
        CONST_VTBL struct IDOMImplementationVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IDOMImplementation_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IDOMImplementation_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IDOMImplementation_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IDOMImplementation_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IDOMImplementation_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IDOMImplementation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IDOMImplementation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IDOMImplementation_addFeature(This,sFeature,sVersion)	\
    (This)->lpVtbl -> addFeature(This,sFeature,sVersion)

#define IDOMImplementation_hasFeature(This,sFeature,sVersion,pbHasFeature)	\
    (This)->lpVtbl -> hasFeature(This,sFeature,sVersion,pbHasFeature)

#define IDOMImplementation_getFeature(This,sFeature,sVersion,ppFeature)	\
    (This)->lpVtbl -> getFeature(This,sFeature,sVersion,ppFeature)

#define IDOMImplementation_registerFeature(This,sFeature,sVersion,sIdentifier)	\
    (This)->lpVtbl -> registerFeature(This,sFeature,sVersion,sIdentifier)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDOMImplementation_addFeature_Proxy( 
    IDOMImplementation * This,
    /* [in] */ BSTR sFeature,
    /* [in] */ BSTR sVersion);


void __RPC_STUB IDOMImplementation_addFeature_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDOMImplementation_hasFeature_Proxy( 
    IDOMImplementation * This,
    /* [in] */ BSTR sFeature,
    /* [in] */ BSTR sVersion,
    /* [retval][out] */ VARIANT_BOOL *pbHasFeature);


void __RPC_STUB IDOMImplementation_hasFeature_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDOMImplementation_getFeature_Proxy( 
    IDOMImplementation * This,
    /* [in] */ BSTR sFeature,
    /* [in] */ BSTR sVersion,
    /* [retval][out] */ IUnknown **ppFeature);


void __RPC_STUB IDOMImplementation_getFeature_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDOMImplementation_registerFeature_Proxy( 
    IDOMImplementation * This,
    /* [in] */ BSTR sFeature,
    /* [in] */ BSTR sVersion,
    /* [in] */ BSTR sIdentifier);


void __RPC_STUB IDOMImplementation_registerFeature_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IDOMImplementation_INTERFACE_DEFINED__ */


#ifndef __IDOMImplementationList_INTERFACE_DEFINED__
#define __IDOMImplementationList_INTERFACE_DEFINED__

/* interface IDOMImplementationList */
/* [unique][helpstring][nonextensible][dual][uuid][object] */ 


EXTERN_C const IID IID_IDOMImplementationList;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("5E86479C-BBA4-4220-80BB-6B45150EED9B")
    IDOMImplementationList : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE item( 
            /* [in] */ long nIndex,
            /* [retval][out] */ IDOMImplementation **ppDOMImplementation) = 0;
        
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_length( 
            /* [retval][out] */ long *pLength) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE addImplementation( 
            /* [in] */ IDOMImplementation *pDOMImplementation) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IDOMImplementationListVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IDOMImplementationList * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IDOMImplementationList * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IDOMImplementationList * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IDOMImplementationList * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IDOMImplementationList * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IDOMImplementationList * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IDOMImplementationList * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *item )( 
            IDOMImplementationList * This,
            /* [in] */ long nIndex,
            /* [retval][out] */ IDOMImplementation **ppDOMImplementation);
        
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_length )( 
            IDOMImplementationList * This,
            /* [retval][out] */ long *pLength);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *addImplementation )( 
            IDOMImplementationList * This,
            /* [in] */ IDOMImplementation *pDOMImplementation);
        
        END_INTERFACE
    } IDOMImplementationListVtbl;

    interface IDOMImplementationList
    {
        CONST_VTBL struct IDOMImplementationListVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IDOMImplementationList_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IDOMImplementationList_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IDOMImplementationList_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IDOMImplementationList_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IDOMImplementationList_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IDOMImplementationList_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IDOMImplementationList_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IDOMImplementationList_item(This,nIndex,ppDOMImplementation)	\
    (This)->lpVtbl -> item(This,nIndex,ppDOMImplementation)

#define IDOMImplementationList_get_length(This,pLength)	\
    (This)->lpVtbl -> get_length(This,pLength)

#define IDOMImplementationList_addImplementation(This,pDOMImplementation)	\
    (This)->lpVtbl -> addImplementation(This,pDOMImplementation)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDOMImplementationList_item_Proxy( 
    IDOMImplementationList * This,
    /* [in] */ long nIndex,
    /* [retval][out] */ IDOMImplementation **ppDOMImplementation);


void __RPC_STUB IDOMImplementationList_item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IDOMImplementationList_get_length_Proxy( 
    IDOMImplementationList * This,
    /* [retval][out] */ long *pLength);


void __RPC_STUB IDOMImplementationList_get_length_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDOMImplementationList_addImplementation_Proxy( 
    IDOMImplementationList * This,
    /* [in] */ IDOMImplementation *pDOMImplementation);


void __RPC_STUB IDOMImplementationList_addImplementation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IDOMImplementationList_INTERFACE_DEFINED__ */


#ifndef __IDOMImplementationSource_INTERFACE_DEFINED__
#define __IDOMImplementationSource_INTERFACE_DEFINED__

/* interface IDOMImplementationSource */
/* [unique][helpstring][nonextensible][dual][uuid][object] */ 


EXTERN_C const IID IID_IDOMImplementationSource;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("926E0C28-E80C-43DB-9BB9-F09A29B92E5F")
    IDOMImplementationSource : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getDOMImplementation( 
            /* [in] */ BSTR sFeatures,
            /* [retval][out] */ IDOMImplementation **ppDOMImplementation) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getDOMImplementations( 
            /* [in] */ BSTR sFeature,
            /* [in] */ BSTR sVersion,
            /* [retval][out] */ IDOMImplementationList **ppDOMImplementationList) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IDOMImplementationSourceVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IDOMImplementationSource * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IDOMImplementationSource * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IDOMImplementationSource * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IDOMImplementationSource * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IDOMImplementationSource * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IDOMImplementationSource * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IDOMImplementationSource * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getDOMImplementation )( 
            IDOMImplementationSource * This,
            /* [in] */ BSTR sFeatures,
            /* [retval][out] */ IDOMImplementation **ppDOMImplementation);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getDOMImplementations )( 
            IDOMImplementationSource * This,
            /* [in] */ BSTR sFeature,
            /* [in] */ BSTR sVersion,
            /* [retval][out] */ IDOMImplementationList **ppDOMImplementationList);
        
        END_INTERFACE
    } IDOMImplementationSourceVtbl;

    interface IDOMImplementationSource
    {
        CONST_VTBL struct IDOMImplementationSourceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IDOMImplementationSource_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IDOMImplementationSource_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IDOMImplementationSource_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IDOMImplementationSource_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IDOMImplementationSource_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IDOMImplementationSource_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IDOMImplementationSource_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IDOMImplementationSource_getDOMImplementation(This,sFeatures,ppDOMImplementation)	\
    (This)->lpVtbl -> getDOMImplementation(This,sFeatures,ppDOMImplementation)

#define IDOMImplementationSource_getDOMImplementations(This,sFeature,sVersion,ppDOMImplementationList)	\
    (This)->lpVtbl -> getDOMImplementations(This,sFeature,sVersion,ppDOMImplementationList)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDOMImplementationSource_getDOMImplementation_Proxy( 
    IDOMImplementationSource * This,
    /* [in] */ BSTR sFeatures,
    /* [retval][out] */ IDOMImplementation **ppDOMImplementation);


void __RPC_STUB IDOMImplementationSource_getDOMImplementation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDOMImplementationSource_getDOMImplementations_Proxy( 
    IDOMImplementationSource * This,
    /* [in] */ BSTR sFeature,
    /* [in] */ BSTR sVersion,
    /* [retval][out] */ IDOMImplementationList **ppDOMImplementationList);


void __RPC_STUB IDOMImplementationSource_getDOMImplementations_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IDOMImplementationSource_INTERFACE_DEFINED__ */


#ifndef __IDOMImplementationRegistry_INTERFACE_DEFINED__
#define __IDOMImplementationRegistry_INTERFACE_DEFINED__

/* interface IDOMImplementationRegistry */
/* [unique][helpstring][nonextensible][dual][uuid][object] */ 


EXTERN_C const IID IID_IDOMImplementationRegistry;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2F733A94-47CD-4262-8D6F-7D1548062CBE")
    IDOMImplementationRegistry : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE newInstance( 
            /* [retval][out] */ IDOMImplementationRegistry **ppDOMImplementationRegistry) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getDOMImplementation( 
            /* [in] */ BSTR sFeatures,
            /* [retval][out] */ IDOMImplementation **ppDOMImplementation) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getDOMImplementations( 
            /* [in] */ BSTR sFeature,
            /* [in] */ BSTR sVersion,
            /* [retval][out] */ IDOMImplementationList **ppDOMImplementationList) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE addSource( 
            /* [in] */ IDOMImplementationSource *pDOMImplementationSource) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IDOMImplementationRegistryVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IDOMImplementationRegistry * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IDOMImplementationRegistry * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IDOMImplementationRegistry * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IDOMImplementationRegistry * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IDOMImplementationRegistry * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IDOMImplementationRegistry * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IDOMImplementationRegistry * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *newInstance )( 
            IDOMImplementationRegistry * This,
            /* [retval][out] */ IDOMImplementationRegistry **ppDOMImplementationRegistry);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getDOMImplementation )( 
            IDOMImplementationRegistry * This,
            /* [in] */ BSTR sFeatures,
            /* [retval][out] */ IDOMImplementation **ppDOMImplementation);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getDOMImplementations )( 
            IDOMImplementationRegistry * This,
            /* [in] */ BSTR sFeature,
            /* [in] */ BSTR sVersion,
            /* [retval][out] */ IDOMImplementationList **ppDOMImplementationList);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *addSource )( 
            IDOMImplementationRegistry * This,
            /* [in] */ IDOMImplementationSource *pDOMImplementationSource);
        
        END_INTERFACE
    } IDOMImplementationRegistryVtbl;

    interface IDOMImplementationRegistry
    {
        CONST_VTBL struct IDOMImplementationRegistryVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IDOMImplementationRegistry_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IDOMImplementationRegistry_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IDOMImplementationRegistry_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IDOMImplementationRegistry_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IDOMImplementationRegistry_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IDOMImplementationRegistry_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IDOMImplementationRegistry_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IDOMImplementationRegistry_newInstance(This,ppDOMImplementationRegistry)	\
    (This)->lpVtbl -> newInstance(This,ppDOMImplementationRegistry)

#define IDOMImplementationRegistry_getDOMImplementation(This,sFeatures,ppDOMImplementation)	\
    (This)->lpVtbl -> getDOMImplementation(This,sFeatures,ppDOMImplementation)

#define IDOMImplementationRegistry_getDOMImplementations(This,sFeature,sVersion,ppDOMImplementationList)	\
    (This)->lpVtbl -> getDOMImplementations(This,sFeature,sVersion,ppDOMImplementationList)

#define IDOMImplementationRegistry_addSource(This,pDOMImplementationSource)	\
    (This)->lpVtbl -> addSource(This,pDOMImplementationSource)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDOMImplementationRegistry_newInstance_Proxy( 
    IDOMImplementationRegistry * This,
    /* [retval][out] */ IDOMImplementationRegistry **ppDOMImplementationRegistry);


void __RPC_STUB IDOMImplementationRegistry_newInstance_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDOMImplementationRegistry_getDOMImplementation_Proxy( 
    IDOMImplementationRegistry * This,
    /* [in] */ BSTR sFeatures,
    /* [retval][out] */ IDOMImplementation **ppDOMImplementation);


void __RPC_STUB IDOMImplementationRegistry_getDOMImplementation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDOMImplementationRegistry_getDOMImplementations_Proxy( 
    IDOMImplementationRegistry * This,
    /* [in] */ BSTR sFeature,
    /* [in] */ BSTR sVersion,
    /* [retval][out] */ IDOMImplementationList **ppDOMImplementationList);


void __RPC_STUB IDOMImplementationRegistry_getDOMImplementations_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDOMImplementationRegistry_addSource_Proxy( 
    IDOMImplementationRegistry * This,
    /* [in] */ IDOMImplementationSource *pDOMImplementationSource);


void __RPC_STUB IDOMImplementationRegistry_addSource_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IDOMImplementationRegistry_INTERFACE_DEFINED__ */


#ifndef __IDOMImplementationErrorList_INTERFACE_DEFINED__
#define __IDOMImplementationErrorList_INTERFACE_DEFINED__

/* interface IDOMImplementationErrorList */
/* [unique][helpstring][nonextensible][dual][uuid][object] */ 


EXTERN_C const IID IID_IDOMImplementationErrorList;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D972E92E-9EF5-4748-8AC9-789C860E1162")
    IDOMImplementationErrorList : public IDispatch
    {
    public:
        virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_length( 
            /* [retval][out] */ long *pnLength) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE item( 
            /* [in] */ long nIndex,
            /* [retval][out] */ BSTR *psFeature) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IDOMImplementationErrorListVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IDOMImplementationErrorList * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IDOMImplementationErrorList * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IDOMImplementationErrorList * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IDOMImplementationErrorList * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IDOMImplementationErrorList * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IDOMImplementationErrorList * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IDOMImplementationErrorList * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_length )( 
            IDOMImplementationErrorList * This,
            /* [retval][out] */ long *pnLength);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *item )( 
            IDOMImplementationErrorList * This,
            /* [in] */ long nIndex,
            /* [retval][out] */ BSTR *psFeature);
        
        END_INTERFACE
    } IDOMImplementationErrorListVtbl;

    interface IDOMImplementationErrorList
    {
        CONST_VTBL struct IDOMImplementationErrorListVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IDOMImplementationErrorList_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IDOMImplementationErrorList_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IDOMImplementationErrorList_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IDOMImplementationErrorList_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IDOMImplementationErrorList_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IDOMImplementationErrorList_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IDOMImplementationErrorList_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IDOMImplementationErrorList_get_length(This,pnLength)	\
    (This)->lpVtbl -> get_length(This,pnLength)

#define IDOMImplementationErrorList_item(This,nIndex,psFeature)	\
    (This)->lpVtbl -> item(This,nIndex,psFeature)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE IDOMImplementationErrorList_get_length_Proxy( 
    IDOMImplementationErrorList * This,
    /* [retval][out] */ long *pnLength);


void __RPC_STUB IDOMImplementationErrorList_get_length_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDOMImplementationErrorList_item_Proxy( 
    IDOMImplementationErrorList * This,
    /* [in] */ long nIndex,
    /* [retval][out] */ BSTR *psFeature);


void __RPC_STUB IDOMImplementationErrorList_item_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IDOMImplementationErrorList_INTERFACE_DEFINED__ */



#ifndef __DOM3ImplRegLib_LIBRARY_DEFINED__
#define __DOM3ImplRegLib_LIBRARY_DEFINED__

/* library DOM3ImplRegLib */
/* [helpstring][version][uuid] */ 


EXTERN_C const IID LIBID_DOM3ImplRegLib;

EXTERN_C const CLSID CLSID_DOMImplementationRegistry;

#ifdef __cplusplus

class DECLSPEC_UUID("7E0BC619-E417-441D-8467-584CB657D13E")
DOMImplementationRegistry;
#endif

EXTERN_C const CLSID CLSID_DOMImplementation;

#ifdef __cplusplus

class DECLSPEC_UUID("D88729DD-1BDE-4745-8D60-30612FBFFE97")
DOMImplementation;
#endif

EXTERN_C const CLSID CLSID_DOMImplementationSource;

#ifdef __cplusplus

class DECLSPEC_UUID("C629C50C-7ECC-44BD-8544-E8795EBE7070")
DOMImplementationSource;
#endif

EXTERN_C const CLSID CLSID_DOMImplementationList;

#ifdef __cplusplus

class DECLSPEC_UUID("BE94D030-DD41-4B58-8664-DAC6D8CEEFBC")
DOMImplementationList;
#endif
#endif /* __DOM3ImplRegLib_LIBRARY_DEFINED__ */

/* Additional Prototypes for ALL interfaces */

unsigned long             __RPC_USER  BSTR_UserSize(     unsigned long *, unsigned long            , BSTR * ); 
unsigned char * __RPC_USER  BSTR_UserMarshal(  unsigned long *, unsigned char *, BSTR * ); 
unsigned char * __RPC_USER  BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * ); 
void                      __RPC_USER  BSTR_UserFree(     unsigned long *, BSTR * ); 

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif


